<html>
<head>
<title>Antiblink</title>
<link href="../../style.css" type="text/css"  rel="stylesheet" />
<!--
Automatically generated, don't change:
$Id: antiblink.htm,v 1.1.1.1 2004/02/18 21:05:53 warpenterprises Exp $ 
-->
</head>
<body>
<h1>Antiblink</h1>
<p>
<h2>Abstract</h2>
<b>author:</b> Kurosu 
<br><b>version:</b> 2.2
<br><b>requirements:</b> YV12 &amp; YUY2 colorspace only
<br><b>syntax:</b> AntiBlink(<a href="#minvar">minvar</a>,<a href="#minvar">maxvar</a>, <a href="#debug">debug</a>)
</p>
<p>
<h2>Description</h2>
The rainbow artifacts are considered in this plugin as chroma oscillations. 
  The filter therefore detects them by measuring chroma variation between frames 
  for each pixel: there's a<br>
  shimmer if the chroma variation is over a threshold. Then it checks for the 
  variation in luma<br>
  for those pixels and if this variation is over another threshold, those pixels 
  are considered<br>
  as moving and not filtered. The other pixels are filtered by averaging the 'blinking' 
  pixels<br>
  with their relative in the next picture.</p>
<p>There is another filter out there much more efficient, namely GuavaComb by 
  Lindsey Dubb. Its advantages are:<br>
  - Also fix dot crawling (luma oscillations)<br>
  - can be setup to avoid ghosting in a much cleaner way.</p>
<p>AntiBlink2 filter is able to work in both YUY2 colorspaces and, contrary to 
  GuavaComb, YV12<br>
  (great speed increase). Keep in mind it can't achieve miracles, as motion or 
  noisy (or MPEG<br>
  like) video will diminish its efficiency.
</p>
<p>
<h2>Examples</h2>
  Ex: Antiblink(10,20,false)
</p>
<p>
<h2>Parameters</h2>
No default, so set all options.<br>
<a name="minvar"></a><strong>Minvar</strong><br>
  Minimum value of the amplitude of the chroma variation. A good default is 15. 
  Must be an<br>
  integer between 0 (enormous ghosting) and 255 (no effect, slow noop filter). 
  Going over 30<br>
  is likely to be useless.</p>
<a name="maxvar"></a><strong>Maxvar</strong><br>
  Maximal value of the luma variation before the pixel is considered as moving. 
  A good value<br>
  is 20, but you have to choose between chroma correction and ghosting vs no filtering.<br>
  Setting it higher than 100 may produce unspotted ghosting in most frames due 
  to motion, but<br>
  really bad frames are likely to come out. I haven't tested how it helps an ivtc 
  filter.</p>
<a name="debug"></a><strong>debug</strong>=true/false<br>
  Display the matches in pink if set to true (also disable MMX code)</p>
<p><strong>Code used</strong><br>
  ---------<br>
  No MMX code, as the previous version wasn't worth the trouble, and taking in 
  consideration<br>
  motion was too complex in YV12.</p>
<p><strong>Speed test</strong> (v2.2)<br>
  -----------------<br>
  Using a Duron 1300 (64KB cache) under W2K SP3 on a NSTC 720x480 MPEG-2 unmuxed 
  vob, with parameters AntiBlink(5,20,false), so no debug display. Direct StreamCopy 
  is used in VirtualDub_mod.</p>
<p>AVS 2.5 tests: MarcFD's Mpeg2dec3 0.94 (idct=2) was used. ConvertToYUY2 is 
  used for YUY2 data.<br>
  fps<br>
  | None | C<br>
  -----+------+----<br>
  YV12 | 67 | 52<br>
  -----+------+----<br>
  YUY2 | 55 | 34</p>
<p>AVS 2.07 test: Nic's Mpegdecoder 1.32 (Dividee's MPEG2DEC plain achieves 40fps)<br>
  fps<br>
  | None | C<br>
  -----+------+----<br>
  YUY2 | 67 | 36</p>
<p>GuavaComb with parameters (&quot;NTSC&quot;,75,25) achieves 45fps and better 
  quality (to my eyes).</p>
</body>
</html>
